1. Field of the Invention
The present invention relates to apparatus and methods for providing data and programs to a data processing device, and more particularly, to methods and apparatus for automatically loading missing system software without terminating current processing operations being executed by the data processing device in a data processing system.
2. Art Background
In many data processing systems it is common for a plurality of data processing devices ("agents") to be coupled to a network. System software resources, such as for example, disk drives, tape drives, or optical storage devices such as CD ROMs, may be coupled to the network to provide system software to be accessed and executed by agents coupled to the network. In the event an agent requires certain software for execution, and the software is not available on the agent's local hard disk drive or internal memory, then it accessed from one of the system software resources such as a disk drive, tape drive or the like.
Due to increasing software functionality and the use of high level compilers, software storage requirements have historically increased at a rate which exceeds available on-line storage capabilities. In addition, in an effort to reduce the cost of agents, such as engineering workstations, it is not always possible to keep increasing hard disk drive storage capacity and meet cost reduction requirements, while still fitting all of the required software comprising a part of an operating environment on the system software resource devices. Accordingly, it is common that only a part of the available software and data processing is loaded into the system's software resources. This means that much of the software which comprises the operating system environment and application programs remains unloaded, and therefore not readily accessible, to agents coupled to the data processing system.
Typically, in most software operating environments, a user obtains a message similar to "file not found" or "command not found", when an attempt occurs to access programs which have not yet been loaded onto the system's software resources, In most situations, this prematurely terminates whatever process, programs, or command is being executed. This may be expensive if the process which terminates prematurely has been in progress for a long period of time.
Today, there exists many "indexes" which allow the user to find and load missing software, and tool/utilities which will load the missing programs for the user. However, these indexes do not help the user in cases in which a running process attempts to access software which is missing. Only after the process currently being executed has terminated, can these index tools be used to load the software necessary for the access at some future time in a future process. Therefore, if a running process attempts to access missing software, the operating system typically returns a "file not found" message, and generates a fatal error returned to the running process, instead of finding and loading the required programs without causing a termination of the executing process.
As will be described, the present invention provides apparatus and methods wherein all needed and available software is indexed, such that when encountering missing software during the execution of a process, the currently executing process is suspended, and upon the user's command, the required software and other data is loaded into a system software resource and execution of the suspended processes is resumed. In this way, a user does not lose valuable computer time if he/she did not have the foresight to preload the required software, programs or other data.